package jmine.tec.di.type;

import jmine.tec.di.cache.TypeMatch;

/**
 * Interface generica para os conversores de string para algum tipo
 * 
 * @author takeshi
 * @param <E> o tipo
 */
public interface TypeConverter<E> extends TypeMatch {

    /**
     * Converte a string passada para o valor correto
     * 
     * @param value String
     * @param desiredType o tipo desejado. Deve ser compativel com E
     * @return E
     * @throws TypeConvertionException erro de conversao
     */
    E convert(String value, Class<?> desiredType) throws TypeConvertionException;

}
